package com.hskn.hss.module.carviolation.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.hskn.hss.module.carTrack.vo.CarTrackVo;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * <p>
 *
 * </p>
 *
 * @author hskn
 * @since 2021-05-20
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class CarViolation implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 车辆违规明细id
     */
    @TableId(value = "car_violation_id", type = IdType.ASSIGN_UUID)
    private String carViolationId;

    /**
     * 车辆id
     */
    private String carId;

    /**
     * 车牌号
     */
    private String carName;

    /**
     * 车型id
     */
    private String carTypeId;

    /**
     * 车型名称
     */
    private String carTypeName;

    /**
     * 所属机构id
     */
    private String depid;

    /**
     * 机构名称
     */
    private String depName;

    private String ruleTypeId;

    /**
     * 违规类型名称
     */
    private String ruleTypeName;

    /**
     * 违规时间
     */
    private Date time;

    //日期
    @TableField(exist = false)
    private String date;

    /**
     * 违规地点 经度
     */
    private String lng;

    /**
     * 违规地点 纬度
     */
    private String lat;

    /**
     * 违规地址名称
     */
    private String address;

    /**
     * 违规内容
     */
    private String content;

    private Date createTime;
    private Date violationStartTime;
    private Date violationEndTime;

    private String gridId;
    private String dealType;
    private String dealUid;
    private String dealRemark;
    private Integer isStopViolation;
    private Integer isKeep;
    private String carTrackStartId;
    private String carTrackEndId;
    @TableField(exist = false)
    private List<CarTrackVo> warningStayList;
    @TableField(exist = false)
    private List<CarTrackVo> otherWarningList;
    @TableField(exist = false)
    private Integer messageType;
    @TableField(exist = false)
    private String id;

    /**
     * 业务模块：机械清扫3，垃圾清运4，垃圾转运5
     */
    private Integer module;

    public CarViolation(String carViolationId, String dealType, String dealUid, String dealRemark) {
        this.carViolationId = carViolationId;
        this.dealType = dealType;
        this.dealUid = dealUid;
        this.dealRemark = dealRemark;
    }

    public CarViolation() {
    }

    public CarViolation(String carId, String carName, String carTypeId, String carTypeName, String depid,
                        String depname, String ruleTypeId, String ruleTypeName, Date time, String lng, String lat,
                        String address, String content, String gridId, Integer module) {
        this.carId = carId;
        this.carName = carName;
        this.carTypeId = carTypeId;
        this.carTypeName = carTypeName;
        this.depid = depid;
        this.depName = depname;
        this.ruleTypeId = ruleTypeId;
        this.ruleTypeName = ruleTypeName;
        this.time = time;
        this.lng = lng;
        this.lat = lat;
        this.address = address;
        this.content = content;
        this.gridId = gridId;
        this.module = module;
    }
    @TableField(exist = false)
    private String  carHeadPortraitViolation;

    private BigDecimal violationValue;
    /**
     * 是否已读(0未读  1已读)
     */
    @TableField(exist = false)
    private Integer isRead;
    /**
     * 日期类型
     */
    @TableField(exist = false)
    private String DateType;
    /**
     * 页数
     */
    @TableField(exist = false)
    private Integer pageNum;
    /**
     * 条数
     */
    @TableField(exist = false)
    private Integer pageSize;
}
